Bản chất của khoa học máy tính không phải là nghiên cứu chính máy tính, mà là nghiên cứu“giải quyết vấn đề (Problem Solving)”là một môn khoa học. Nó là một nghệ thuật về việc chuyển hóa sự hỗn loạn phức tạp trong thế giới thực thành các bước logic chính xác.
Ba trụ cột cốt lõi
- Thuật toán (Algorithm)Là linh hồn giải quyết vấn đề. Đây là một quy trình có số bước hữu hạn, quyết định một vấn đề có thể đượctính toán được (Computable).
- Lập trình (Programming)Là quá trình chuyển thuật toán thành ngôn ngữ mà máy tính hiểu được (ví dụ như Python), nó là cây cầu nối giữa trừu tượng hóa logic và hiện thực vật lý.
- Trừu tượng hóa quá trình (Procedural Abstraction)Là vũ khí tối thượng để quản lý độ phức tạp. Bằng cách đóng gói chi tiết triển khai bên trong 'hộp đen', nhà phát triển chỉ cần quan tâm đến 'làm gì' thay vì 'làm sao'.
Triết lý hộp đen của nhà phát triển
Khi bạn gọi
math.sqrt(16) thì bạn không cần biết bên dưới sử dụng phương pháp Newton hay tìm kiếm nhị phân. Khả năng 'bỏ qua các chi tiết không cần thiết' này là cốt lõi để xây dựng hệ thống phần mềm quy mô lớn. Đây cũng chính là tiền thân củakiểu dữ liệu trừu tượng (ADT) ý tưởng ban đầu: tách biệt hoàn toàn biểu diễn logic của dữ liệu với thực thi vật lý của nó.